#include <iostream>
#include <list>
template <typename T>
void print(const T& vec)
{
    std::cout << vec.size() << std::endl;
    for(auto item = vec.begin(); item != vec.end(); item++)
    {
        std::cout << *item << " ";
    }
    std::cout << std::endl;
}
int main()
{
    std::list<int> l = {1,2,3,4,5};
    print(l);

    auto ite = l.begin();
    for(int i = 0; i < 3; i++)
    {
        ite++;
    }
    l.insert(ite, 99);
    print(1);
    
    /* list容器是双链表，支持双向移动 */
    ite--;
    /* 链表元素逆序 */
    l.reverse();
    print(l);
    return 0;
}